﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel

Namespace roncliProductions.LibWowArmory.Item.Info

    ''' <summary>
    ''' A class that encapsulates detailed creature drop information
    ''' </summary>
    ''' <remarks></remarks>
    Public Class CreatureInfo
        Private aiAreas As New Collection(Of AreaInfo)
        Private ctTypes As New Collection(Of CreatureType)

        ''' <summary>
        ''' The area of the creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Area As Collection(Of AreaInfo)
            Get
                Return aiAreas
            End Get
        End Property

        ''' <summary>
        ''' The type of creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property CreatureTypes As Collection(Of CreatureType)
            Get
                Return ctTypes
            End Get
        End Property

        ''' <summary>
        ''' The average of the maximum level of creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property AvgMaxLevel As Double

        ''' <summary>
        ''' The average of the minimum level of creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property AvgMinLevel As Double

        ''' <summary>
        ''' The maximum level of creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property MaxLevel As Integer

        ''' <summary>
        ''' The minimum level of creatures the item comes from
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property MinLevel As Integer

        ''' <summary>
        ''' A constructor to create new creature drop information
        ''' </summary>
        ''' <param name="aiArea"></param>
        ''' <param name="ctType"></param>
        ''' <param name="dblAvgMaxLevel"></param>
        ''' <param name="dblAvgMinLevel"></param>
        ''' <param name="intMaxLevel"></param>
        ''' <param name="intMinLevel"></param>
        ''' <remarks></remarks>
        Public Sub New(ByVal aiArea As Collection(Of AreaInfo), ByVal ctType As Collection(Of CreatureType), ByVal dblAvgMaxLevel As Double, ByVal dblAvgMinLevel As Double, ByVal intMaxLevel As Integer, ByVal intMinLevel As Integer)
            Me.aiAreas = aiArea
            Me.ctTypes = ctType
            AvgMaxLevel = dblAvgMaxLevel
            AvgMinLevel = dblAvgMinLevel
            MaxLevel = intMaxLevel
            MinLevel = intMinLevel
        End Sub

    End Class

End Namespace
